<template>
  <div class="right3">
    <el-table
      :data="tableData"
      ref="tableRef"
      style="width: 100%"
      :max-height="tableH"
      @cell-click="rowClick"
      v-if="currentLevel === 1"
    >
      <!-- 使用v-for循环生成el-table-column -->
      <el-table-column
        v-for="(column, index) in processedColumns"
        :key="index"
        :label="column.label"
        :prop="column.prop"
        :width="column.width"
        :align="column.align"
        :sortable="column.sortable"
        :sort-method="column.sortMethod"
      ></el-table-column>
    </el-table>
  </div>
</template>

<script setup>
// const sortByPercentage = (a, b) => {
//   // 去除百分号并转换为数字进行比较
//   const numA = parseFloat(a.zcl)
//   const numB = parseFloat(b.zcl)
//   return numA - numB
// }
import { onMounted, ref, computed } from 'vue'
import { ElButton, ElIcon } from 'element-plus'
import { getBaseInfoHCXzData, getBaseInfoHCCjData } from '@/api/index.js'
const props = defineProps({
  xData: {
    type: Array,
    default: () => [],
  },
  sData: {
    type: Array,
    default: () => [],
  },
  data1: {
    type: Array,
    default: () => [],
  },
  data2: {
    type: Array,
    default: () => [],
  },
  columns: {
    type: Array,
    default: () => [],
  },
  tableData: {
    type: Array,
    default: () => [],
  },
})
const tableH = ref('0px')
const tableRef = ref(null)
const getTableH = () => {
  setTimeout(() => {
    tableH.value = document.querySelector('.table-style').offsetHeight
    return `${tableH.value}px`
  }, 200)
}
const currentLevel = ref(1) // 1 是区县
// 定义包含列配置信息的数组
const processedColumns = computed(() => {
  return props.columns.map((column) => {
    // 使用新的对象避免修改传递的属性
    const newColumn = { ...column }
    // 如果该列配置中有 sortMethod 属性，则使用在子组件中定义的排序方法
    if (column.sortable && column.sortMethod) {
      newColumn.sortMethod = sortByPercentage
    }
    return newColumn
  })
})
// 排序方法示例，根据百分比值进行排序（函数声明会提升，你可以在脚本的任何位置使用该函数）
function sortByPercentage(a, b) {
  const numA = parseFloat(a.zcl)
  const numB = parseFloat(b.zcl)
  return numA - numB
}
onMounted(() => {
  getTableH()
})
</script>
<style scoped lang="scss">
.right3 {
  width: 100%;
  height: 100%;
  flex: 1;
  //   border: 1px solid red;
  // 表格部分样式
  // 最外层透明
  ::v-deep .el-table,
  ::v-deep .el-table__expanded-cell {
    background-color: transparent;
    color: #93dcfe;
    font-size: 2.2rem;
    border-bottom: 1px solid transparent; // 去掉表格体 的 边框
  }
  /* 表格内背景颜色  */
  ::v-deep .el-table {
    th,
    tr,
    td {
      background-color: transparent;
      border: none;
      color: #93dcfe;
      font-size: 2.2rem;
      // height: 5px;
      font-family: Source Han Sans CN Normal, Source Han Sans CN Normal-Normal;
      font-weight: Normal;
    }
  }
  ::v-deep .el-table__body-wrapper {
    .el-table__body {
      // border: 1px solid red;
      // background-color: red;
      .el-table__row {
        border: 10px solid red;
        // background-color: yellow;
      }
    }
  }
  /* // 设置表格行高度 */
  ::v-deep .el-table__body tr {
    padding: 0;
    height: 54px;
    border: 1px solid red;
  }

  /* // 修改高亮当前行颜色 */
  ::v-deep .el-table tbody tr:hover > td {
    background: #063570 !important;
  }

  /* // 取消当前行高亮 */
  //   ::v-deep .el-table tbody tr {
  //     pointer-events: none;
  //   }

  /* 修改表头样式-加边框 */
  //   ::v-deep .el-table__header-wrapper {
  //      border: solid 1px #04c2ed;
  //   }

  /* // 表格斑马自定义颜色 */
  ::v-deep .el-table__row.warning-row {
    background: #01205a;
  }

  /* 去掉表格里的padding */
  ::v-deep .el-table .cell,
  .el-table th div {
    padding-left: 0px;
    padding-right: 0px;
    padding-top: 0px;
    padding-bottom: 0px;
    font-size: 1.3rem;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}
/* 自定义内容样式 */
.content-color {
  color: #fff;
  cursor: pointer;
  text-decoration: underline;
}
.custom-column-style {
  color: red;
}
.back {
  display: flex;
  justify-content: flex-end;
}
</style>
